配置采集日志
最后于 更新
产品基于 ilogtail 进行二次开发采集了应用产生的日志。相较于开源版本,Originx 仅保存故障发生时间段的日志,减少了存储。
K8s 环境采集配置
默认情况下仅采集输出到标准输出(stdout)的日志,如果您想要采集输出到文件中的日志,请按照以下步骤进行配置:
- 首先打开名为
apo-ilogtail-user-config
的 configmap:
kubectl edit cm apo-ilogtail-user-config -n apo
- 增加新的配置文件,将以下内容添加到 configmap 中:
data:
pod_stdout_file.yaml: |
...
# 以下为新增配置内容
pod_log_file.yaml: |
enable: true
inputs:
- Type: file_log
LogPath: /logs/
FilePattern: "*.log"
ContainerFile: true
processors:
- Type: processor_wait_for_signal
ContentsRename:
"__tag__:_container_id_": "_container_id_"
"__tag__:__path__": "_source_"
flushers:
- Type: flusher_otlp
Logs:
Endpoint: apo-otel-collector-svc:4317
修改inputs
部分,配置您期望采集的日志文件,其中 LogPath
为容器日志所在的路径(支持搜索子路径),FilePattern
为匹配日志文件名的正则表达式。详细配置请参考 ilogtail的官方文档。
注意:请不要修改 processors
和 flushers
部分。
- 保存并退出,无需重启,配置会动态生效。
虚拟机环境采集配置
在虚拟机环境中,ilogtail 当前仅支持直接采集宿主机上的日志。在安装探针的目录下,找到配置文件目录 apo-one-agent-compose/config/apo-ilogtail
,创建 pod_log_file.yaml
,配置如下:
enable: true
inputs:
- Type: file_log
# 日志文件在ilogtail进程所在容器下的路径
# 默认将宿主机目录挂载到容器内的/logtail_host下
# 因此 在宿主机路径前添加 /logtail_host
LogPath: /logtail_host/home/
# 采集文本日志的文件名,支持通配符
# 支持多层目录匹配,即指定目录(包含所有层级的目录)下所有符合条件的文件都会被查找到。
# 可以通过MaxDepth决定查询多少层
FilePattern: "*.log"
# 日志目录被监控的最大深度
# 例如,最大深度为2时, 即使都满足filePattern
# 将只采集 $LogPath/xx/xx/test.log
# 不采集 $LogPath/xx/xx/xx/test.log 的日志
MaxDepth: 4
processors:
- Type: processor_path_to_pid
- Type: processor_wait_for_signal
ContentsRename:
"__tag__:_container_id_": "_container_id_"
"__tag__:__path__": "_source_"
flushers:
- Type: flusher_otlp
Logs:
Endpoint: apo-otel-collector-svc:4317
主要需要修改:
- LogPath: 指定需要采集日志的路径,注意在绝对路径前固定增加前缀
/logtail_host
- FilePattern: 指定日志文件的匹配方式
- MaxDepth: 指定从
LogPath
起,往下递归多少层目录查询满足 FilePattern 的日志文件 - Endpoint: 指定接收地址,请使用服务端地址
NodeIP:30317
,其中NodeIP
为 APO 服务端所在集群主机IP。